#ifndef __HAL_IO_H
#define __HAL_IO_H

#include "t_types.h"

#define HAL_IO_MAX_NUM (32)
#define HAL_IO_INVALID_IO 0xffff
#define HAL_IO_MAX_LOOP (6)

typedef struct _HAL_IO_CONFIG_S
{
	T_UINT32 u32RailUpIO;
	T_UINT32 u32RailDownIO;
	T_UINT32 au32LoopIO[HAL_IO_MAX_LOOP];
	T_UINT32 u32CapLight;
	T_UINT32 u32CapLight_a;
} HAL_IO_CONFIG_S;

int HAL_IO_RailUp(void);
int HAL_IO_RailDown(void);
int HAL_IO_RailReset(void);
int HAL_IO_CapLightOn(void);
int HAL_IO_CapLightOff(void);
int HAL_IO_GetLoopStatus(T_UINT8 *pStatus);
int HAL_IO_LoopCallBackRegister(int s32Channel, T_CALLBACK fnCallBack);
int HAL_IO_Init(void);
int HAL_IO_DeInit(void);
#endif